package Threads.JMM;


//可以利用volatile解决指令重排序问题
//读写屏障
public class order {
    int num = 0;

    private boolean ready = false;

    // 线程1 执行此方法
    public void actor1(int r) {
        if(ready) {
            r = num + num;
        } else {
            r = 1;
        }
    }
    // 线程2 执行此方法

    //这个函数中，20行和21行可能会发生指令重排，导致最终结果r=0，可以利用volatile解决
    public void actor2() {
        num = 2;
        ready = true;
    }
    public static void main(String[] args) {

    }
}
